// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

//
// This file is used by AsmOffsets.h to validate that our
// assembly-code offsets always match their C++ counterparts.
//
// NOTE: the offsets MUST be in hex notation WITHOUT the 0x prefix

PLAT_ASM_SIZEOF(278, ExInfo)
PLAT_ASM_OFFSET(0, ExInfo, m_pPrevExInfo)
PLAT_ASM_OFFSET(8, ExInfo, m_pExContext)
PLAT_ASM_OFFSET(10, ExInfo, m_exception)
PLAT_ASM_OFFSET(18, ExInfo, m_kind)
PLAT_ASM_OFFSET(19, ExInfo, m_passNumber)
PLAT_ASM_OFFSET(1c, ExInfo, m_idxCurClause)
PLAT_ASM_OFFSET(20, ExInfo, m_frameIter)
PLAT_ASM_OFFSET(270, ExInfo, m_notifyDebuggerSP)

PLAT_ASM_OFFSET(0, PInvokeTransitionFrame, m_FramePointer)
PLAT_ASM_OFFSET(8, PInvokeTransitionFrame, m_RIP)
PLAT_ASM_OFFSET(10, PInvokeTransitionFrame, m_pThread)
PLAT_ASM_OFFSET(18, PInvokeTransitionFrame, m_Flags)
PLAT_ASM_OFFSET(20, PInvokeTransitionFrame, m_PreservedRegs)

PLAT_ASM_SIZEOF(250, StackFrameIterator)
PLAT_ASM_OFFSET(10, StackFrameIterator, m_FramePointer)
PLAT_ASM_OFFSET(18, StackFrameIterator, m_ControlPC)
PLAT_ASM_OFFSET(20, StackFrameIterator, m_RegDisplay)
PLAT_ASM_OFFSET(240, StackFrameIterator, m_OriginalControlPC)
PLAT_ASM_OFFSET(248, StackFrameIterator, m_pPreviousTransitionFrame)

PLAT_ASM_SIZEOF(C0, PAL_LIMITED_CONTEXT)

PLAT_ASM_OFFSET(0, PAL_LIMITED_CONTEXT, FP)
PLAT_ASM_OFFSET(8, PAL_LIMITED_CONTEXT, LR)
PLAT_ASM_OFFSET(10, PAL_LIMITED_CONTEXT, X0)
PLAT_ASM_OFFSET(18, PAL_LIMITED_CONTEXT, X1)
PLAT_ASM_OFFSET(20, PAL_LIMITED_CONTEXT, X19)
PLAT_ASM_OFFSET(28, PAL_LIMITED_CONTEXT, X20)
PLAT_ASM_OFFSET(30, PAL_LIMITED_CONTEXT, X21)
PLAT_ASM_OFFSET(38, PAL_LIMITED_CONTEXT, X22)
PLAT_ASM_OFFSET(40, PAL_LIMITED_CONTEXT, X23)
PLAT_ASM_OFFSET(48, PAL_LIMITED_CONTEXT, X24)
PLAT_ASM_OFFSET(50, PAL_LIMITED_CONTEXT, X25)
PLAT_ASM_OFFSET(58, PAL_LIMITED_CONTEXT, X26)
PLAT_ASM_OFFSET(60, PAL_LIMITED_CONTEXT, X27)
PLAT_ASM_OFFSET(68, PAL_LIMITED_CONTEXT, X28)
PLAT_ASM_OFFSET(70, PAL_LIMITED_CONTEXT, SP)
PLAT_ASM_OFFSET(78, PAL_LIMITED_CONTEXT, IP)

PLAT_ASM_SIZEOF(148, REGDISPLAY)
PLAT_ASM_OFFSET(f8, REGDISPLAY, SP)

PLAT_ASM_OFFSET(98, REGDISPLAY, pX19)
PLAT_ASM_OFFSET(a0, REGDISPLAY, pX20)
PLAT_ASM_OFFSET(a8, REGDISPLAY, pX21)
PLAT_ASM_OFFSET(b0, REGDISPLAY, pX22)
PLAT_ASM_OFFSET(b8, REGDISPLAY, pX23)
PLAT_ASM_OFFSET(c0, REGDISPLAY, pX24)
PLAT_ASM_OFFSET(c8, REGDISPLAY, pX25)
PLAT_ASM_OFFSET(d0, REGDISPLAY, pX26)
PLAT_ASM_OFFSET(d8, REGDISPLAY, pX27)
PLAT_ASM_OFFSET(e0, REGDISPLAY, pX28)
PLAT_ASM_OFFSET(e8, REGDISPLAY, pFP)
PLAT_ASM_OFFSET(f0, REGDISPLAY, pLR)
PLAT_ASM_OFFSET(108, REGDISPLAY, D)
